package com.ruoyi.msg.domain.vo;

import cn.hutool.core.text.CharSequenceUtil;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.constant.BusinessConstant;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * <p>
 * 题库信息详情VO
 * </p>
 *
 * @author zhangxiaohao
 * @since 2022-10-21
 */
@NoArgsConstructor
@Data
public class TkXxDetailVo {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long id;

    /**
     * 问卷题目关系id
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long wjTkId;

    /**
     * 题目
     */
    private String topic;

    /**
     * 题型（字典）
     */
    private String type;

    /**
     * 总分
     */
    private Integer score;

    /**
     * 是否必答 0必答 1非必答（字典）
     */
    private String must;

    /**
     * 选项排列（字典）
     */
    private String format;

    /**
     * 问卷 -> 题库列表 排序
     */
    private Integer sort;

    /**
     * 选项列表
     */
    private List<OptionsDTO> options;

    @NoArgsConstructor
    @Data
    public static class OptionsDTO {
        /**
         * 主键
         */
        @JsonFormat(shape = JsonFormat.Shape.STRING)
        private Long id;

        /**
         * 是否初始值 0默认值 1非默认值 （字典）
         */
        private String init;

        /**
         * 内容
         */
        private String content;

        /**
         * 类型 0允许填空 1必填 2单行文本 3多行文本 （字典）
         */
        private String type;

        /**
         * 得分
         */
        private Integer score;

        /**
         * 排序 字母选项
         */
        private String sort;

        public String getSort() {
            if (CharSequenceUtil.isNotBlank(sort)) {
                return BusinessConstant.LETTERS[Integer.parseInt(sort)];
            }
            return sort;
        }
    }
}
